package com.gjzhao.fmmall.service.juc;

/**
 * volatile不保证原子性
 */
public class TestJMMAtomic {

    public static void main(String[] args) {

        //资源类
        OrderForJMM orderForJMM = new OrderForJMM();

        //创建10个线程用于++操作
        for (int i = 0; i < 10; i++) {

            //每个线程每次++共 1000次
            new Thread(() -> {

                for (int j = 0; j < 1000; j++) {

                    orderForJMM.setNumberPlusPlus();
                }

            }, "A线程").start();
        }

        //如果除了main与gc线程，还有其他的线程，先让其他线程先执行
        while (Thread.activeCount() > 2) {
            Thread.yield();
        }


        System.out.println("----++操作全部执行完成，最后的和为:" + orderForJMM.number);

    }


}
